\chapter{Bildverarbeitung}
\section{Gauss Kernel}
In der Bildverarbeitung wird ein Gaussfilter angewendet, wenn ein Bild gefaltet werden soll. Dazu wird eine Matrix kreiert, welche über ein gesamtes Bild alle Bildpunkte neu berechnet. In der Tabelle \ref{tab:gauss3x3} ist die Matrix mit Gaussfunktion berechnet und normalisiert auf 1.
\begin{table}[!h]
\centering

\begin{tabular}{cc}

\begin{tabular}{|c|c|c|}
\hline
$W_{-1,-1}$ & $W_{-1,0}$ & $W_{-1,1}$ \\ \hline
$W_{0,-1}$ & $W_{0,0}$ & $W_{0,1}$ \\ \hline
$W_{1,-1}$ & $W_{1,0}$ & $W_{1,1}$ \\ \hline
\end{tabular} &
\begin{tabular}{|c|c|c|}
\hline
0.075 & 0.124 & 0.075 \\ \hline
0.124 & 0.204 & 0.124 \\ \hline
0.075 & 0.124 & 0.075 \\ \hline
\end{tabular}
\end{tabular}
\caption{Links: allg. Filterkoeffizienten. Rechts: Gauss Matrix mit Normierung 1}
\label{tab:gauss3x3}
\end{table}
Um die einzelnen Punkte der Matrix zu berechnen, werden zuerst alle Werte mit der Gleichung \ref{eq:gauss1} berechnet, wobei $n_1$ den vertikalen Abstand und $n_2$ den horizontalen Abstand zum innersten Kern $W_{0,0}$ bedeutet. Alle berechneten Werte werden summiert und mit der Anzahl Elemente dividiert.
\begin{equation}
h_g(n_1, n_2) = e^{\frac{-(n_1^2+n_2^2)}{2\sigma^2}}
\label{eq:gauss1}
\end{equation}

\begin{equation}
h(n_1, n_2) = \frac{h_g(n_1, n_2)}{\sum_{n_1}\sum_{n_2}h_g}
\label{eq:gauss2}
\end{equation}
Die Gleichung \ref{eq:gauss2} zeigt die Berechnung der Werte für die Matrix. % Quelle: http://www.mathworks.ch/ch/help/images/ref/fspecial.html
\clearpage
\section{Pseudo Code Filter Implementation}
Der Filter wird für jeden Pixel angewendet. Die benachbarten Pixel werden mit dem Matrixwert gewichtet und summiert. Der Algorithmus ist im Listing \ref{lst:FilterPseudo} dargestellt.

\lstinputlisting[label=lst:FilterPseudo,caption=Pseudo Code Filter Implementation]{java/FilterPseudo.java}
Dadurch ist es möglich, eine geglättete Version eines Bildes zu erstellen.

\section{Schätzung des Aufwands}
Ein Bild enthält eine Anzahl Pixel $n$ und der Filter die Anzahl Elemente $m$. Es erfolgen $n \cdot m$ Lesezugriffe und $n$ Schreibzugriffe. Der Aufwand für die Berechnung des Ausgabebildes beträgt demnach:
\begin{equation}
\mathcal O(2n \cdot m)
\label{eq:approxFilter}
\end{equation}
Mit einem $n = 512 \cdot 512$ Pixel grossen Bild und einem Filter mit der Grösse $m = 13 \cdot 13$ entspricht dies:
\begin{equation}
\mathcal{O}_r = n \cdot m = 44'302'336
\end{equation}
\begin{equation}
\mathcal{O}_w = n = 162'144
\end{equation}
Dies ergibt über 44 Millionen Lese- und über hundertsechzigtausend Schreibzugriffe.


